<%@page import="java.text.SimpleDateFormat"%>
<%@page import="javax.xml.namespace.QName"%>
<%@page import="java.net.URL"%>
<%@page import="Proxies.DataEvento"%>
<%@page import="Proxies.DataComentario"%>
<%@page import="java.util.List"%>
<%@page import="Proxies.EnumAprob"%>
<%@page import="Proxies.DataContenido"%>
<%@page import="Proxies.CtrlModifUmbralWSService"%>
<%@page import="Proxies.CtrlModifUmbralWS"%>
<%@page import="Proxies.CtrlDetalleDeGrupoWSService"%>
<%@page import="Proxies.CtrlDetalleDeGrupoWS"%>
<%@page import="Proxies.DataGrupo"%>
<%@page import="Proxies.DataUsuario"%>
<%@page import="java.text.DateFormat"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.Collections"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.Calendar"%>
<%

    DataUsuario usr = (DataUsuario) session.getAttribute("usr");
    DataGrupo grupo = null;

    String nomGrupo = request.getParameter("nomGrupo");

    String IP = (String) session.getAttribute("SERVIDOR");
    URL dirGrupo = new URL(IP + "CtrlDetalleGrupo?wsdl");
    QName qNaGrupo = new QName("http://WebServices/", "CtrlDetalleDeGrupoWSService");
    CtrlDetalleDeGrupoWS ctrlGrupo = new CtrlDetalleDeGrupoWSService(dirGrupo, qNaGrupo).getCtrlDetalleDeGrupoWSPort();
    boolean esCreador = false;
    boolean esModerador = false;

    if (nomGrupo != null) {
        grupo = ctrlGrupo.detallarGrupo(nomGrupo);
        esCreador = ctrlGrupo.esUsrCreadorGrupo(nomGrupo, usr.getCorreo());
        esModerador = ctrlGrupo.esUsrModeradorGrupo(nomGrupo, usr.getCorreo());
    }

    URL dirUmbral = new URL(IP + "CtrlModifUmbral?wsdl");
    QName qNaUmbral = new QName("http://WebServices/", "CtrlModifUmbralWSService");
    int umbralMin = new CtrlModifUmbralWSService(dirUmbral, qNaUmbral).getCtrlModifUmbralWSPort().getUmbral();

%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <script type="text/javascript" src ="js/ajax.js"></script>
        <script type="text/javascript" src ="js/funciones.js"></script>
        <link rel="stylesheet" type="text/css" href="Estilos/estilos.css"/>
        <title>RED - Grupos</title>
        <script>
            function agregarFecha(){
                var divFechas = document.getElementById('selFechas');
                var selDias = document.getElementById('selDia');
                var dia = selDias.options[selDias.selectedIndex].value;
                var selHoras = document.getElementById('selHora');
                var hora = selHoras.options[selHoras.selectedIndex].value;
                var opt = document.createElement("option");
                
                opt.value = hora+dia;
                opt.innerHTML = dia+" "+hora;
                
                divFechas.appendChild(opt);
                
                //Incrementar contador de fechas.
                var cantFechas = parseInt(document.getElementById("cantFechas").value);
                cantFechas++;
                document.getElementById("cantFechas").value = cantFechas;

                //Agregar input hidden.
                var input = document.createElement("input");
                input.type = "hidden";
                input.name = "f"+cantFechas;
                input.value = dia+" "+hora;
                document.getElementById("repetible").appendChild(input);
            }
            
            function selecRepetible(opcion){
                switch (opcion){
                    case 'repe':
                        document.getElementById('noRepetible').style.display = 'none';
                        document.getElementById('repetible').style.display = 'block';
                        break;
                    case 'noRepe':
                        document.getElementById('noRepetible').style.display = 'block';
                        document.getElementById('repetible').style.display = 'none';
                        break;
                }
            }
            
            function y2k(number) { return (number < 1000) ? number + 1900 : number; }

            var date2 = new Date();
            var milliseconds2 = Date.UTC(y2k(date2.getYear()),date2.getMonth(),date2.getDate());
            var baseTime = milliseconds;
            var currentDate = "";

            function prevDay2() {
                //if (milliseconds2 > baseTime)
                milliseconds2 -= 86400000;
                formatDate2();
            }

            function nextDay2() {
                milliseconds2 += 86400000;
                formatDate2();
            }

            function formatDate2() {
                date2 = new Date(milliseconds2);
                var year2 = date2.getYear();
                var month2 = date2.getMonth() + 1;
                var day2 = date2.getDate();
                document.date2.fechaNoRepe.value = ((day2 < 10) ? '0' + day2 : day2) +
                    '-' + ((month2 < 10) ? '0' + month2 : month2) + 
                    '-' + ((year2 < 1000) ? year2 + 1900 : year2);
                currentDate = document.date2.fechaNoRepe.value;
            }

            function checkDate() {
                if (document.date2.fechaNoRepe.value != currentDate)
                    document.date2.fechaNoRepe.value = currentDate
            }
        </script>
        <link rel="shortcut icon" href="Media/images/favicon.ico"/>
    </head>
    <body onload="formatDate2();">
        <jsp:include page="header.jsp" />
        <h1>GRUPOS</h1>
        <div id="buscarGrupos">
            <form action="grupos.jsp" method="POST" id="formListarGrupos">
                Buscar por nombre de grupo:<br/>
                <input id="txtGrupos" type="text" onkeyup="showHintGrupos(this.value);" 
                       autocomplete="off" name="nomGrupo" style="width: 300px;"/>
                &nbsp;&nbsp;<img src="Media/images/cancel.png" 
                                 width="20" height="20" align="top" alt="cancelar" 
                                 onclick="showHintMailUsr('');"
                                 />
            </form>
            <div id="resultadoListado" style="position: absolute;">
                <span id="txtHint"></span>
            </div>
        </div>
        <div id="perfil_centro" class="datosPerfil">
            <h1>Perfil del grupo</h1>
            <center>
                <%
                    if (nomGrupo != null) {
                %>
                <% if (esCreador || esModerador) {%>
                <br/><a href="acepRechazarCont.jsp?grupo=<%= nomGrupo%>">ACEPTAR/RECHAZAR PETICIONES DE CONTENIDO</a><br/><br/>
                <% }%>
                <table>
                    <tr>
                        <td><b>Nombre:</b></td><td><%= grupo.getNombre()%></td>
                    </tr>
                    <tr>
                        <td><b>Descripcion del grupo:</b></td><td><%= grupo.getDesc()%></td>
                    </tr>
                    <tr>
                        <td><b>Cantidad de participantes:</b></td><td><%= grupo.getCantParticipantes()%></td>
                    </tr>
                    <tr>
                        <td><b>Imagen:</b></td><td><img width="150" alt="Imagen" <% out.print("src=\"" + grupo.getImg() + "\"");%> /></td>
                    </tr>
                    <tr>
                        <td><b>Fecha de creacion:</b></td><td><%= grupo.getFechaCreacion().toGregorianCalendar().get(Calendar.DATE)%>
                            / <%= grupo.getFechaCreacion().toGregorianCalendar().get(Calendar.MONTH) + 1%>
                            / <%= grupo.getFechaCreacion().toGregorianCalendar().get(Calendar.YEAR)%></td>
                    </tr>
                    <tr>
                        <td><b>Rol del usuario:</b></td><td><%= ctrlGrupo.rolUsrGrupo(nomGrupo, usr.getCorreo())%></td>
                    </tr>
                    <tr>
                        <td><b>Creador del grupo:</b></td><td><%= grupo.getCreador()%></td>
                    </tr>
                    <tr>
                        <td><b>Participantes:</b></td>
                        <td>
                            <ul>
                                <%
                                    Iterator<String> iteraPart = grupo.getParticipantes().iterator();
                                    while (iteraPart.hasNext()) {
                                        out.print("<li>" + iteraPart.next() + "</li>\n");
                                    }
                                %>
                            </ul>
                        </td>
                    </tr>
                    <tr>
                        <td><b>Moderadores:</b></td>
                        <td>
                            <ul>
                                <%
                                    Iterator<String> iteraModeradores = grupo.getModeradores().iterator();
                                    while (iteraModeradores.hasNext()) {
                                        out.print("<li>" + iteraModeradores.next() + "</li>\n");
                                    }
                                %>
                            </ul>
                        </td>
                    </tr>
                </table>
            </center>
        </div>
        <div id="div_entradaMuro">
            <h2>Agregar una entrada en el muro</h2>
            <%
                if (!esCreador && !esModerador) {
            %>

            <center>
                <div class="advertencia" style="width: 400px;">

                    <b>Advertencia:</b><br/>
                    <p>La entrada al muro quedará pendiente de aprobacion por el creador o 
                        los moderadores del grupo.</p>

                </div>
            </center>

            <%                }
            %>
            <center>
                <form METHOD="POST" ACTION="agregarContenido.jsp" id="agregarCont">
                    <input type="hidden" name="mailMuro" value="<%= grupo.getNombre()%>" />
                    <input type="hidden" name="esGrupo" value="SI" />
                    <table style="width: 600px;" id="tableAgregarEntrada">
                        <tr>
                            <td>Título del contenido</td>
                            <td><input TYPE="text" NAME="nomContenido" style="width: 300px;"/></td>
                        </tr>
                        <tr>
                            <td>Tipo de contenido</td>
                            <td>
                                <input type="radio" name="tipoContenido" value="Texto" onchange="selectTipoContenido('texto');" />Texto
                                <input type="radio" name="tipoContenido" value="Imagen" onchange="selectTipoContenido('imagen');"/>Imagen
                                <input type="radio" name="tipoContenido" value="Video" onchange="selectTipoContenido('video');"/>Video
                                <input type="radio" name="tipoContenido" value="Documento" onchange="selectTipoContenido('doc');"/>Documento
                            </td>
                        </tr>
                        <tr id="trTexto" hidden="">
                            <td>Ingrese Texto</td>
                            <td><input TYPE="text" NAME="cuerpoTexto" style="width: 300px;"/></td>
                        </tr>
                        <tr id="trVideo" hidden="">
                            <td>Ingrese url del video</td>
                            <td>
                                <input TYPE="TEXT" NAME="urlVideo" id="inputVideo" style="width: 300px;"/>
                            </td>
                        </tr>
                        <tr id="trImagen" hidden="">
                            <td>Ingrese url de la imagen</td>
                            <td>
                                <input TYPE="TEXT" NAME="urlImagen" id="inputImagen" style="width: 300px;"/>
                                <input type="button" value="Vista previa" onclick="abrirPopup('inputImagen');"/>
                            </td>
                        </tr>
                        <tr id="trDocumento" hidden="">
                            <td>Ingrese url del documento</td>
                            <td>
                                <input type="file" name="urlDocumento" id="inputDoc" style="width: 300px;"/>
                            </td>
                        </tr>
                        <tr>
                            <td></td>
                            <td><input type="submit" value="Agregar Contenido"/></td>
                        </tr>
                    </table>
                    <p></p>
                </form>
            </center>
        </div>
        <div id="div_Muro">
            <h2>Entradas del muro</h2>
            <center>
                <%
                    List<DataContenido> list = grupo.getMuro().getContenidos();
                    Collections.reverse(list);
                    Iterator<DataContenido> itera = list.iterator();
                    DataContenido dc = null;

                    while (itera.hasNext()) {
                        dc = itera.next();
                        if (!dc.isBloqueado()
                                && !dc.getAprobacion().equals(EnumAprob.NO_APROBADO)
                                && !dc.getAprobacion().equals(EnumAprob.PENDIENTE)
                                && dc.isPublicar()) {
                            out.println("<a name=\"" + dc.getTitulo() + "\"></a>");

                %>
                <table style="width: 500px;">
                    <tr>
                        <th>Título</th>
                        <td> <%= dc.getTitulo()%></td>
                    </tr>
                    <tr>
                        <th> 
                            <%
                                out.print(dc.getTipo());
                            %> 
                        </th>
                        <td>
                            <%
                                if (dc.getTipo().equals("Texto")) {
                                    out.print(dc.getCuerpo());
                                } else if (dc.getTipo().equals("Imagen")) {
                                    out.print("<img src=\"" + dc.getUrl() + "\" style=\"width: 200px;\"/>");
                                    out.println("<br/><span><b>Personas etiquetadas en esta imagen:</b></span><br/><ul>");
                                    Iterator<DataUsuario> iteraEt = dc.getEtiquetas().iterator();
                                    DataUsuario usrEtiq = null;
                                    while (iteraEt.hasNext()) {
                                        usrEtiq = iteraEt.next();
                                        out.println("<li>" + usrEtiq.getNick() + "</li>");
                                    }
                                    
                                    SimpleDateFormat dateF = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
                                    String dateO = dateF.format(dc.getFechaPublicacion().toGregorianCalendar().getTime());

                                    out.println("</ul>");
                                    out.println("<a href=\"etiquetarImg.jsp?"
                                            + "esGrupo=SI"
                                            + "&urlImg=" + dc.getUrl()
                                            + "&duenoMuro=" + nomGrupo
                                            + "&titCont=" + dc.getTitulo()
                                            + "&fechaPub=" + dateO
                                            + "\">Etiquetar personas en esta imagen.</a>");
                                } else if (dc.getTipo().equals("Video")) {
                                    out.print("<a href=\""
                                            + dc.getUrl()
                                            + "\" style=\"display:block;width:425px;height:300px;\" "
                                            + "id=\"player\"></a>");
                                } else if (dc.getTipo().equals("Documento")) {
                                    out.print("<a href=\"" + dc.getUrl() + "\">DESCARGAR EL DOCUMENTO</a>");
                                }
                            %>
                            <script language="JavaScript">
                                flowplayer("player", "flowplayer/flowplayer-3.2.7.swf");
                            </script>
                        </td>
                    </tr>
                    <tr>
                        <th>Autor</th>
                        <td> <%= dc.getAutor().getNick()%></td>
                    </tr>
                    <tr>
                        <th>Fecha de publicación</th>
                        <td> <%= dc.getFechaPublicacion().toGregorianCalendar().get(Calendar.DATE) + "/"
                                + (dc.getFechaPublicacion().toGregorianCalendar().get(Calendar.MONTH) + 1) + "/"
                                + dc.getFechaPublicacion().toGregorianCalendar().get(Calendar.YEAR) + " "
                                + dc.getFechaPublicacion().toGregorianCalendar().get(Calendar.HOUR_OF_DAY) + ":"
                                + dc.getFechaPublicacion().toGregorianCalendar().get(Calendar.MINUTE)%> </td>
                    </tr>
                </table>
                <%
                    if (esCreador || esModerador) {
                %>

                <a href="bloquearContenido.jsp?titulo=<%= dc.getTitulo()%>&grupo=<%= grupo.getNombre()%>">Bloquear contenido</a><br/>

                <%
                    }
                %>

                <%
                    Iterator<DataComentario> iteraComent = dc.getComentarios().iterator();
                    DataComentario dComent = null;
                    while (iteraComent.hasNext()) {
                        dComent = iteraComent.next();
                %>
                <table style="width: 350px;margin-bottom: 1px;">
                    <% if (dComent.getPuntos() >= umbralMin) {%>
                    <tr>
                        <td rowspan="3" style="width: 51px;"><img width="50" align="top" src="<%=dComent.getUsr().getImagen()%>" alt="Imagen"/></td>
                    </tr>
                    <tr>
                        <th><%= dComent.getUsr().getNick()%></th>
                        <td><%= dComent.getTexto()%></td>
                    </tr>
                    <tr>
                        <th>Puntaje</th>
                        <td><%= dComent.getPuntos()%></td>
                    </tr>
                    <%
                        if (!dComent.getUsr().getCorreo().equals(usr.getCorreo())) {
                    %>
                    <tr>
                        <td colspan="3">
                    <center>
                        <a href="leGusta.jsp?esGrupo=SI&leGusta=SI&muro=<%= grupo.getNombre()%>&titulo=<%= dc.getTitulo()%>&coment=<%= dComent.getTexto() + dComent.getFecha().toGregorianCalendar().get(Calendar.SECOND)%>"> Me gusta</a> - 
                        <a href="leGusta.jsp?esGrupo=SI&leGusta=NO&muro=<%= grupo.getNombre()%>&titulo=<%= dc.getTitulo()%>&coment=<%= dComent.getTexto() + dComent.getFecha().toGregorianCalendar().get(Calendar.SECOND)%>"> No me gusta</a>
                    </center>
                    </td>
                    </tr>
                    <% }%>
                    <% }%>
                </table>
                <%
                    if (dComent.getUsr().getCorreo().equals(usr.getCorreo())) {
                %>
                <a href="eliminarComentario.jsp?esGrupo=SI&coment=<%=dComent.getTexto()%>&muro=<%= grupo.getNombre()%>&titulo=<%= dc.getTitulo()%>">Eliminar</a>
                <%

                        }
                    }
                %>
                <form METHOD="POST" ACTION="agregarComentario.jsp" id="agregarComent">
                    <input type="hidden" name="mailMuro" value="<%= grupo.getNombre()%>" />
                    <input type="hidden" name="mailUsr" value="<%= usr.getCorreo()%>" />
                    <input type="hidden" name="tituloCont" value="<%= dc.getTitulo()%>" />
                    <input type="hidden" name="esGrupo" value="SI" />
                    <input type="hidden" name="fecha" value="<%= dc.getFechaPublicacion().toGregorianCalendar().getTime().toString()%>" />
                    <table style="width: 350px;margin-bottom: 1px;margin-top: 1px;">
                        <tr id="trComentario">
                            <td style="width: 25px;">
                        <center>
                            <img width="25" align="top" src="<%=usr.getImagen()%>" alt="Imagen"/>&nbsp;&nbsp;
                            <input TYPE="text" NAME="comentario" style="width: 250px;" class="input_blur"
                                   value="Escribe un comentario..." onfocus="setTextField(event);" />
                        </center>
                        </td>
                        </tr>
                    </table>
                </form>
                <%
                            out.print("<br/>");
                        }
                    }
                %>
            </center>
        </div>
    <center>
        <div id="agregarEventos" class="agregarEventos">
            <h2>Agregar eventos</h2>
            <form action="agregarEvento.jsp" method="GET" id="agregarEvento" name="date2">
                Nombre del evento:<input type="text" name="nomEvento"/><br/>
                Clase de vento:<select form="agregarEvento" name="enumEvento" id="selEnum">
                    <option value="ANIVERSARIO">ANIVERSARIO</option>
                    <option value="REUNION">REUNION</option>
                    <option value="RECORDATORIO">RECORDATORIO</option>
                </select><br/>

                Tipo:<br/>
                Repetible<input type="radio" name="tipo" value="repetible" checked="" onchange="selecRepetible('repe')"/>
                No repetible<input type="radio" name="tipo" value="noRepetible" onchange="selecRepetible('noRepe')"/><br/>

                <div id="repetible">
                    <input id="cantFechas" type="hidden" name="cantFechas" value="0"/>
                    <select id="selFechas" name="fechas" size="5" style="width: 200px;"></select><br/>

                    <select form="agregarEvento" name="dia" id="selDia">
                        <option value="Lunes">Lunes</option>
                        <option value="Martes">Martes</option>
                        <option value="Miercoles">Miercoles</option>
                        <option value="Jueves">Jueves</option>
                        <option value="Viernes">Viernes</option>
                        <option value="Sabado">Sabado</option>
                        <option value="Domingo">Domingo</option>
                    </select>
                    <Select form="agregarEvento" name="hora" id="selHora">
                        <% for (int i = 0; i <= 23; i++) {%>
                        <option value="<%=(i < 10 ? "0" + i : i) + ":00"%>"><%=(i < 10 ? "0" + i : i) + ":00"%></option>
                        <option value="<%=(i < 10 ? "0" + i : i) + ":30"%>"><%=(i < 10 ? "0" + i : i) + ":30"%></option>
                        <% }%>
                    </select>
                    <input type="button" onClick="agregarFecha()" value="agregar fecha"/><br/>
                </div>
                <div id="noRepetible" style="display: none;">
                    <label>Fecha(dd-mm-yyyy): </label>
                    <a HREF="JavaScript:prevDay2()" onMouseOver="self.status='';return true">
                        <img SRC="Media/images/back.png" BORDER=0 WIDTH=17 HEIGHT=23 ALIGN=TOP ALT="Click" />
                    </a>
                    <input contenteditable="false" NAME="fechaNoRepe" TYPE="text" SIZE="10" VALUE="9999-99-99" onChange="checkDate()" />
                    <a HREF="JavaScript:nextDay2()" onMouseOver="self.status='';return true" >
                        <img SRC="Media/images/next.png" BORDER=0 WIDTH=17 HEIGHT=23 ALIGN=TOP ALT="Click" />
                    </a>
                    <label>Hora: </label><Select form="agregarEvento" name="horaNoRepe" id="selHora">
                        <% for (int i = 0; i <= 23; i++) {%>
                        <option value="<%=(i < 10 ? "0" + i : i) + ":00"%>"><%=(i < 10 ? "0" + i : i) + ":00"%></option>
                        <option value="<%=(i < 10 ? "0" + i : i) + ":30"%>"><%=(i < 10 ? "0" + i : i) + ":30"%></option>
                        <% }%>
                    </select>
                </div>
                <input type="submit" value="Agregar evento"/>
                <input type="hidden" name="grupo" value="SI"/>
                <input type="hidden" name="mailUsr" value="<%=nomGrupo%>"/>
            </form>
        </div>
        <div id="eventos">
            <h2>Eventos</h2>
            <table>
                <tr>
                    <th>Nombre</th>
                    <th>Autor</th>
                    <th>Clase de evento</th>
                    <th>Repetible</th>
                    <th>Fecha(s)</th>
                </tr>
                <%
                    Iterator<DataGrupo.CalEventos.Entry> iteraEven = grupo.getCalEventos().getEntry().iterator();
                    DataGrupo.CalEventos.Entry de = null;
                    while (iteraEven.hasNext()) {
                        de = iteraEven.next();
                        boolean repetible = de.getValue().isRepetible();
                %>

                <tr>
                    <td><%=de.getValue().getNombre()%></td>
                    <td><%=de.getValue().getAutor().getNick()%></td>
                    <td><%=de.getValue().getTipo().toString()%></td>
                    <td>
                        <%
                            if (repetible) {
                                out.print("SI");
                            } else {
                                out.print("NO");
                            }
                        %>
                    </td>
                    <td>
                        <%
                            if (repetible) {
                                out.println("<ul>");
                                Iterator<String> iteraDias = de.getValue().getDiasDeSemana().iterator();
                                while (iteraDias.hasNext()) {
                                    out.println("<li>" + iteraDias.next() + "</li>");
                                }
                                out.println("</ul>");
                            } else {
                                DateFormat dateFormatter = DateFormat.getDateInstance(DateFormat.DEFAULT);
                                String dateOut = dateFormatter.format(de.getValue().getFecha().toGregorianCalendar().getTime());
                                out.print(dateOut);
                            }
                        %>
                    </td>
                </tr>
                <%
                    }
                %>
            </table>
        </div></center>

    <%
    } else {
        Iterator<DataGrupo> iteraGrupos = ctrlGrupo.listarGrupos().getItem().iterator();
        DataGrupo dg = null;
    %>
    <div id="listaGrupos">
        <br/>
        <table>
            <tr>
                <th>Nombre de grupo</th>
            </tr>
            <%
                while (iteraGrupos.hasNext()) {
                    dg = iteraGrupos.next();
            %>
            <tr>
                <td><b><a href="grupos.jsp?nomGrupo=<%=dg.getNombre()%>"><%= dg.getNombre() %></a></b></td>
            </tr>
            <% } %>
        </table>
    </div>
    <% } %>
    <jsp:include page="footer.jsp" />
</body>
</html>
